{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Copy Task Plots"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "from glob import glob\n",
    "import json\n",
    "import os\n",
    "import sys\n",
    "sys.path.append(os.path.abspath(os.getcwd() + \"./../\"))\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Load training history\n",
    "\n",
    "To generate the models and training history used in this notebook, run the following commands:\n",
    "\n",
    "```\n",
    "mkdir ./notebooks/copy\n",
    "./train.py --seed 1 --task copy --checkpoint-interval 500 --checkpoint-path ./notebooks/copy\n",
    "./train.py --seed 10 --task copy --checkpoint-interval 500 --checkpoint-path ./notebooks/copy\n",
    "./train.py --seed 100 --task copy --checkpoint-interval 500 --checkpoint-path ./notebooks/copy\n",
    "./train.py --seed 1000 --task copy --checkpoint-interval 500 --checkpoint-path ./notebooks/copy\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['./copy/copy-task-1-batch-40000.json',\n",
       " './copy/copy-task-100-batch-40000.json',\n",
       " './copy/copy-task-1000-batch-40000.json',\n",
       " './copy/copy-task-10-batch-40000.json']"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "batch_num = 40000\n",
    "files = glob(\"./copy/*-{}.json\".format(batch_num))\n",
    "files"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training history (seed x metric x sequence) = (4, 3, 40000)\n"
     ]
    }
   ],
   "source": [
    "# Read the metrics from the .json files\n",
    "history = [json.loads(open(fname, \"rt\").read()) for fname in files]\n",
    "training = np.array([(x['cost'], x['loss'], x['seq_lengths']) for x in history])\n",
    "print(\"Training history (seed x metric x sequence) =\", training.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(4, 3, 40)\n"
     ]
    }
   ],
   "source": [
    "# Average every dv values across each (seed, metric)\n",
    "dv = 1000\n",
    "training = training.reshape(len(files), 3, -1, dv).mean(axis=3)\n",
    "print(training.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(3, 40)\n",
      "(3, 40)\n"
     ]
    }
   ],
   "source": [
    "# Average the seeds\n",
    "training_mean = training.mean(axis=0)\n",
    "training_std = training.std(axis=0)\n",
    "print(training_mean.shape)\n",
    "print(training_std.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtEAAAFPCAYAAACLTZKpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl4FFW6+PHv293ZJIGwLwmCGIiAsqNsFwOKSFBERUQd\nBxR/GUdcGbngdQa9zgIOA4oy1zEODigKMm6gbKMgqBhFEBREBZQlCYtsAQKBJN3n90d1YlbS6aRT\n3cn7eZ56kjpVp+o9pyHPm8qpc8QYg1JKKaWUUsp3DrsDUEoppZRSKtRoEq2UUkoppVQlaRKtlFJK\nKaVUJWkSrZRSSimlVCVpEq2UUkoppVQlaRKtlFJKKaVUJWkSrZSyhYgYH7Y91XSvSO/1pvhR91pv\n3T7VEYsf928mIn8Vke0icsa7fS0ifxaRZnbEpJRSClx2B6CUqrP6lth/B/gaeLJI2blqutc57/32\n+VE3zVt3WzXF4jMR6QKsAvKB2cBXWA8/egD3Au2A22o6LqWUUiC62IpSKhh4nzp/aoz5lY/nRxhj\nqivJDjoiEgFsB3KBAcaYoyWOhwNDjDHL7Iivqmr756eUqv10OIdSKuiJyCIR2SUiA0XkcxHJAZ7y\nHvu1iKwTkcMickpENonI7SXqlxrOISLTRSRfRNqLyCoROS0iu0XkMRGRIueVGs7hjeFDERkmIlu8\nQyy2isjwMmL/tYjsEJGz3mEYw7z1V1bQ7NFYT5onlUygAYwxuUUTaBGJFZEXROSgiOSKyPcicn+J\nWAracq2IvCgix0TkZxGZJyL1i5y3S0ReL6MtA731hxUp6yki74tIlojkiMjHItK3RL3zfX7RIvKS\nN5ZTIvJvEbnSe58xJa5ztYisFZFs77ZMRDqWOKcyn01PEVnqvXeOiHwnIo+WOOdWEdngvc5xb1vi\nSl5LKVX3aBKtlAoVTYBXgVeAYcCb3vKLgEXA7cBNWMMfXhWRcT5cU4C3gRXADd6vfwHGnK+SV0fg\nr97tZuAo8LaItCm8uMh1wHysYSo3Ac8CLwBtfbj+EKxhKKsqbISIy3ver4BpwPXAGuB5EZlaRpX/\nA04Dt3rPvw2YUeT4AuAGEYkuUe9O4CDwH+99+wCfAvWA8cAo73XXiMhlJeqW9/nNKxL3TcBerD4r\n2caCz/YI1md9J9AU+FhEWpY43ZfPZgCwHmgNPAgMB54D4ouc8zCwENjsvc59QE/gIxG5oGSMSqk6\nxhijm2666Wb7BuwBFpRzbBFggKEVXMOB9a7Hq8AXRcojvfWnFCmb7i27rUiZADuApUXKrvWe16dI\n2edYCW6bImXx3vMmFin7CthUIsZ+3vNWVtCWj4DdPvbdKO81x5QoXwCcARqUaMuLJc77J3CyyP7F\n3vPGlujDLGBWkbL1WL8guIqUhQE/Aosq+vyALt7yB0uUpxZtj/dzTQeWlzivkTem6X58NhuAn4DI\ncvo0FusXgv8rUd4Ba4z6vXb/n9FNN93s3fRJtFIqVJwxxpR6Kisil4jIYhHZj5Xc5GE92Uz08bqF\nQyKMMQb4FrjQh3rfGmP2FqmbgZXQXeiNKwLoxi9PXAvO+ww44GNsvhqINXb63yXKFwBRwOUlykuO\no94KxIhIrDfGH4HPsJ72FrgeaID1Cwre4R99gTe8+y7vE3GD9RR8YIl7lPX5FQyRKRn3myX2O2Ml\nwgsK7uO910ngyzLuVdFnEwv0Bl4xxpylbP8FXAC8VuKeP3m3kvdUStUxmkQrpULFwZIF3mToQ+AS\nYBIwACs5eg3ryWlF3MaYkyXKzvlY91gZZUXrtsB6sv1zGecd8uH66UBLEQnz4dxGwM/GGHeJ8oNF\njhdVMvaCF/yKtvtVYFCR8b93AtuMMZu9+02x2vdnrF9cim73AI3LiaWogmEYJfuoZP8UTOX3Whn3\nurqMe1X02RScn1HGeSXv+WkZ92xfxj2VUnWMTnGnlAoVZU0l9F9AHDDSGLOxoNDHxDPQDmHFXNZc\nzs2pOJH+ECtxvYbST45LOgY0FRGHMcZTpLxFkeOV9QbWtHq3i8jLWENBfl/ingAzsYZrlFTy8yrr\n8yt4It+M4k/nm5c4r+DFyt8BH5dxnfKeJpen4Hrne0Gw4JzbgZ1lHC/5y5dSqo7RJ9FKqVBW8HJX\nXkGBWAuQJNsTzi+8wwS2YI1XLiQi/fnlCez5vIE1bOBvIlLySTIiEiYiBe1cB0QAN5Y47Q4gB2v8\nb6UYY44D72Ml8mMAJ9aT4KLHv8Aa17zJGLOxxLbJh9t87v16S4nykvtbgf1AxzLus9EYU6k5vI0x\nWVh98mvvsJuyfIzVd+3KueeOytxTKVX76JNopVQo+wTr5a8XReQpoD4wFespb/z5KtaQqcB7IvJv\n4GWsJ8NPYMXnOV9FY8w5EbkRayaMLSIyG2uWCMEaa30vsBFYDizBSgpfFpFWwA/ACKyx4U8YY074\nGf+rWIvgPAasMcZkljj+MNb45+UiMg9ryEZToBeQZ4z5QwVt/EZE3gKe9iazW4ChWE/fwdtHxhi3\nd7q+f3tnxXgL60lxC6A/sMMYM6eSbZsIrAbWi8gzWEl6AlaiPtEYc0ysKRFnevt0FXAK6+n1IGCF\nMabk2G2lVB2iT6KVUiHLGLMfa+qxKKzE6o/A85R+Mc0Wxpj3gXFYSe+7WInb/cBxoMLE1hjzDdAV\n66n0/8Ma1vEe1tPhhcAD3vPysZLPhcDjWE+QrwYeMMY8VYUmLMdKVuPwvlBYIr7PgSuAbGAOVsL/\nDNZLnZ/4eI+7sJ5wP4413WA74CHvscI+Msa8g5W8NgLmYiW107GmzvPnSft6rOFAP2NN+bcMeIQi\n46SNMc9h/SXhUm+My7B+CTJYT8eVUnWYrliolFI1SEQuwppG73+MMTMqOr8uEpHfA/8LtDLG+PIS\nplJK1TgdzqGUUgEiIg2wFm9ZjfUi3sXAZKzp1ubZF1nw8A5ZSQC+8RZdifXE/lVNoJVSwUyTaKWU\nCpw8rLHZf8eaEi0b6yXAx4wxh+0MLIicwnqR8PdYL4qmA3/Duyy4UkoFKx3OoZRSSimlVCXpi4VK\nKaWUUkpVkibRSimllFJKVVJIjIlu0qSJadu2rV91T58+Tb169ao3oDpA+80/2m/+0X7zj/abf7Tf\n/KP95h/tN//Y2W+bNm06YoxpWtF5IZFEt23blo0bN1Z8YhnWrl1LUlJS9QZUB2i/+Uf7zT/ab/7R\nfvOP9pt/tN/8o/3mHzv7TUT2+nJewIdziIhTRDaLyPve/YtE5AsR2SUib4hIeKBjUEoppZRSqjrV\nxJjoh4Dviuw/DTxjjEnAWrVrfA3EoJRSSimlVLUJaBItIvHAcOCf3n0BBvPLkrzzgZGBjEEppZRS\nSqnqFtB5okXkTWAaEAM8CowDPvc+hUZEWgMrjDGXllE3BUgBaN68ec9Fixb5FUN2djbR0dF+1a3L\ntN/8o/3mH+03/2i/+Uf7zT/ab/7RfvOPnf02aNCgTcaYXhWdF7AXC0XkOuBnY8wmEUmqbH1jTCqQ\nCtCrVy/j7+ByHdDvH+03/2i/+Uf7zT/ab/7RfvOP9pt/tN/8Ewr9FsjZOfoDI0QkGYgE6gOzgVgR\ncRlj8rGWw80MYAxKKaWUUkpVu4CNiTbGPGaMiTfGtAXGAGuMMXcAHwGjvKeNBZYEKgallFJKKaUC\nwY4VCycDE0VkF9AYmGtDDEoppZRSSvmtRhZbMcasBdZ6v/8JuLwm7quUUkoppVQg2PEkWimllFJK\nqZCmSXQ52k5ZRtspy+wOQymllFJKBSFNopVSSimllKokTaKVUkqpOqJt27ZERUURHR1Nw4YNGT58\nOOnp6YXHN2zYQHJyMrGxsTRq1IjLL7+cf/3rXwBs2bIFh8NBdHR0sS0tLQ2ApKQk/vnPf9rSLqXs\noEl0Gd7d/MvU1f2nrym2r5RSSoWy9957j+zsbA4cOEDz5s154IEHAEhLS2Pw4MFceeWV7Nq1i6NH\nj/LCCy+wYsWKwrqtWrUiOzu72Na3b1+7mqKUrTSJLuHdzZk89vbWwv3MrBwee3urJtJKKaVqlcjI\nSEaNGsX27dsBmDRpEmPHjmXy5Mk0adIEEaFnz54sXry4yvdaunQpnTt3JjY2lqSkJL777rvCY08/\n/TRxcXHExMSQmJjI6tWrAeupeK9evahfvz7Nmzdn4sSJVY5DqeqkSXQJM1b9QE6eu1hZTp6bGat+\nsCkipZRSqvqdOXOGN954gz59+nDmzBnS0tIYNWpUxRUraceOHdx22208++yzHD58mOTkZK6//npy\nc3P54YcfmDNnDl9++SWnTp1i1apVtG3bFoCHHnqIhx56iJMnT/Ljjz8yevToao9NqaqokXmiQ8n+\nrJxKlSullFKhZOTIkbhcLk6fPk3Tpk1ZtWoVx48fx+Px0LJly/PW3b9/P7GxscXKMjMzqVevXrl1\n3njjDYYPH86QIUMAePTRR5k9ezafffYZ8fHxnDt3ju3bt9O0adPCBBogLCyMXbt2ceTIEZo0aUKf\nPn38b7RSAaBPoktoFRtV7rF3NmfUYCRKKaVU9Xv33XfJysri7NmzzJkzhyuvvBIRweFwcODAgfPW\nbdWqFVlZWcW28yXQYCXebdq0Kdx3OBy0bt2azMxMEhISePbZZ3nyySdp1qwZY8aMYf/+/QDMnTuX\nHTt2cMkll9C7d2/ef//9qjdeqWqkSXQJk4YmEhXmLFbmEDDAI298zUOLNnPybJ49wSmllFLVxOl0\nctNNN+F0Ovnss8/o27cvb731VrXfp1WrVuzdu7dw3xhDeno6cXFxANx+++18+umn7N27FxFh8uTJ\nALRv356FCxfy888/M3nyZEaNGsXp06erPT6l/KVJdAkju8cx7abLCvfjYqOYeUtXnr75MqLCnCzZ\nsp/k2Z+wae9xG6NUSimlqsYYw5IlSzh+/DgdO3bkr3/9K/PmzWPGjBkcPXoUgK+//poxY8b4fM38\n/HzOnj1buOXl5TF69GiWLVvG6tWrycvLY+bMmURERNCvXz9++OEH1qxZw7lz54iMjCQqKgqHw0pN\nFixYwOHDh3E4HIVDSAqOKRUM9F9jGUZ2jyv8fv2UwdzYI55be1/I+w8O4NK4+mQcz2H0i2k8t3on\nbo+xMVKllFKqcq6//nqio6OpX78+jz/+OPPnz6dz587069ePNWvWsGbNGtq1a0ejRo1ISUkhOTm5\nsO7+/ftLzRNd9On1b3/7W6Kiogq3u+66i8TERBYsWMADDzxAkyZNeO+993jvvfcIDw/n3LlzTJky\nhSZNmtCiRQt+/vlnpk2bBsDKlSvp3Lkz0dHRPPTQQyxatIioqPKHXCpV0/TFwnLsmT68VNnFTaN5\n+7f9mfmfH3jx45+Y9cEOPtl5mGdu7UZ8wwuKnVuwZHhZ11FKKaXssGfPnvMev/zyy4vNC11Ut27d\n8Hg85dZdu3ZtucduvPFGbrzxxlLlXbp0YcOGDWXWWbBgwXljVcpu+iS6ksJdDh5L7siC8VfQLCaC\nL/ccZ9jsT3j/m/12h6aUUkoppWqIJtF+GtC+CSsfHsjVHZtz6mw+97++mUn//prT5/LtDk0ppWyx\ncuVKEhMTSUhIYPr06aWO79u3j0GDBtG9e3e6dOnC8uXLbYhSKaWqhybRVdCoXjgv/bonfxx5KREu\nB//elMHw5z7hudU7Cs/RZcOVUnWB2+1mwoQJrFixgu3bt7Nw4cLClfAK/OlPf2L06NFs3ryZRYsW\ncd9999kUrVJKVZ0m0VUkItzZpw3vPTCAS1rEsOfoGWZ9sLPwuC4brpSqCzZs2EBCQgLt2rUjPDyc\nMWPGsGTJkmLniAgnT54E4MSJE7Rq1cqOUJVSqlpoEl1NOjSP4d0J/akX4Sx1TJcNV0rVdpmZmbRu\n3bpwPz4+nszM4g8PnnzySRYsWEB8fDzJyck8//zzNR2mUkpVG52doxpFhjk5c85d5jFdNlwpVdct\nXLiQcePG8bvf/Y60tDTuvPNOtm3bVmru39TUVFJTUwH49ttvufDCC4sd93g8tWa+4NrSFm1H8PGl\nLUePHuXIkSM1FFHtE7AkWkQigY+BCO993jTGPCEi84ArgRPeU8cZY7YEKo6a1io2iswyEmYD3DN/\nIxOHdKBTq/o1H5hSSgVQXFwc6enphfsZGRmFK9IVmDt3LitXrgSgb9++nD17liNHjtCsWbNi56Wk\npJCSkgJAz549Wb9+fbHjaWlp9O3bNxDNqHG1pS3ajuDjS1sGDBhQQ9HUToH8descMNgY0xXoBlwr\nIn28xyYZY7p5t1qTQEPZy4a7HILLAR9+d4jk5z5hwmtfsfPQqfNep+2UZYVzTSulVLDr3bs3O3fu\nZPfu3eTm5rJo0SJGjBhR7JwLL7yQ1atXA/Ddd99x9uxZmjZtake4SilVZQFLoo0l27sb5t1q/fJ+\nZS0b/rdbupL22NXc3f8iwl0Olm09wDXPfswjb2xhz5HTNkarlFLVw+VyMWfOHIYOHUrHjh0ZPXo0\nnTt3ZurUqSxduhSAmTNn8tJLL9G1a1duu+025s2bh4jYHLlSSvknoGOiRcQJbAISgL8bY74Qkd8C\nfxaRqcBqYIox5lwg46hpI7vH8fAb1gP29VMGF5ZPvb4T/2/gRfz9o1288WU672zOZOnX+xnVI54H\nrkooteqhUkqFkuTk5GJLRAM89dRThd936tSp1NAMpZQKVQFNoo0xbqCbiMQC74jIpcBjwEEgHEgF\nJgNPlawrIilACkDz5s3Pu5zo+WRnZ/tdtzqUde+rY6Fr/0iW/pjH+v35vLExnTc3pXNlaxfXtwvj\nu2O/vJzY88nl3NwhjH6twny+57iV1tPtedfW8ztuu/stVGm/+Uf7zT/ab0qpqjh16lTQ/gwJhZ9v\nNTI7hzEmS0Q+Aq41xvzNW3xORP4FPFpOnVSsJJtevXqZpKQkv+69du1a/K1bFXt8uOUtwO4jp5n9\n4Q6WfL2fNfvyWZeeD0X+vHn0rOHV79x06tiJkd3jyr9YUSutsdRVabdd/RbqtN/8o/3mH+03pVRV\nxMTEBO3PkFD4+RawMdEi0tT7BBoRiQKGAN+LSEtvmQAjgW2BiiEUXNSkHs+O6c6qhweSfFkL3Abc\nnuJDx3Py3Dz1/nZ+PJxNbr7nvNcruqiLrpaolFJKKRUYgXwS3RKY7x0X7QAWG2PeF5E1ItIUEGAL\ncG8AYwgZHZrH8H939OSiKcvKfPvy2Olcrpq5DqdDiG8YxUVN6pXavvzpGP/z7i+/kxSslgj4/hRb\nKaWUUkpVKGBJtDHmG6B7GeWDyzhdeZU3z3SEy0Gz+hFkHM9h79Ez7D16hrU/HK7wegWrJWoSrZRS\nSilVfXTFwiAzaWgij729lZy8X14ujApzMu2myxjZPY6zeW7Sj53hpyOn2XPkNLuPnOYn79fDp8qe\n5GR/Vg7GGJ1KSimllFKqmmgSHWQKnhgXTJEXFxvFpKGJheWRYU7aN4+hffOYUnX7TlvNgRNnS5Ub\nYNjsTxjXry03dIsjKtxZ6hyllFJKKeW72rFAfC1TdOjF+imDfR6KMfnaS8pcLTE6wsn3B08x5e2t\n9Jm2mmnLvyP92Jlyr9N2yrLCafKUUiroud2QlWV3FEqpOkaT6FqkvNUSN/1hCM/c2pWu8Q04kZPH\nix//xJUzPiLllY18tusIxtT6hSSVUrWYc9YsInr2xOFdUlwppWqCJtG1TFlPsSNcTm7sHs+S+wfw\nzn39GNmtFU6H8J/th7j9n18w9NmPee2LvZzJza/yFHltpyyj7ZRl1dYepZSqiOeqqzD16xN+3XW4\nJk6EM+X/pU0ppaqLjokOUnumDw/Idbtf2JDuFzbkf4Z35PUv9vHaF/vYcSibx9/Zxh/f+5ai01Db\nMUVeQQIeqPYrpWof06MHuZ99husPf8D197/jWL2avJdfxvTsaXdoSqlaTJ9E10J7pg+vMAltFhPJ\nw1d3YP3kwcwe043uF8ZyNt+QX8ZCL39d9X0gw1VKqaqLiiL/b38jd9ky5PRpwpOScD31FJw4YXdk\nSqlaSpPoOi7c5eCGbnG8c19/ypsAb3/WWcb9awOpH//ItswTeDw6hlopFZw8gwdz7ssv8dx8M65p\n04ho3x7XY49BRobdoSmlahlNolWhVrFR5R5b+8Nh/rL8e657/lN6/OkDfrtgE69+vpcfD2cXvpio\nS44rVbetXLmSxMREEhISmD59epnnLF68mE6dOtG5c2duv/32wATSsCF58+Zxbv16PNdei/O554jo\n2JGw8eORrVsDc0+lVJ2jY6JVofIWepkyLJH6UWF8tuson/14lMysHFZsO8iKbQcBaFE/kviGkXyd\n8cufTXXJcaXqFrfbzYQJE/jggw+Ij4+nd+/ejBgxgk6dOhWes3PnTqZNm8b69etp2LAhP//8c0Bj\nMj16kPfKK8gf/4jzuedwzp9PxOuv4+nXj/x77sFz000QERHQGJRStZcm0apQRQu93Ng9HmMM+46d\nYf2uo6z/8QhpPx7l4MmzHDxZepEXXXJcqbpjw4YNJCQk0K5dOwDGjBnDkiVLiiXRL730EhMmTKBh\nw4YANGvWrEZiM23akD9zJvmPP45z/nyc//wn4Xffjfnv/8Z95524x4/HXHxxjcSilKo9NIlWxYzs\nHleYRK+fMrjUcRGhTeN6tGlcj9uvuBCPx/DDoVMMm/1Jmdfbn5UT0HiVUsEhMzOT1q1bF+7Hx8fz\nxRdfFDtnx44dAPTv3x+3282TTz7JtddeW+paqamppKamFl43LS2t2PHs7OxSZT7r0wcuv5yGX31F\nq/feo8ns2bieeYbsdu040r8/R/r141T79uComdGOVWpLENF2BJ/a1JZgpUm0KmXP9OGsXbvWp3Md\nDqFjy/rExUaRWUbCfL5x1kqpuiU/P5+dO3eydu1aMjIyGDhwIFu3biU2NrbYeSkpKaSkpADQs2dP\n+vbtW+x4WlpaqbJK698fHniA3P37cS5ezAXLl9Pmtddo++qrmJYtcV93He5bbsH07x/QhLpa2hIE\ntB3Bpza1JVjpi4WqWkwamlhqyXGHWOVKqdovLi6O9PT0wv2MjAzi4ooP5YqPj2fEiBGEhYVx0UUX\n0aFDB3bu3FnToRbXqhXuhx8m9z//4dy+feTOnYunTx+cr79OxDXXEJGYiOvxx5FvvgFd3VUpVYQm\n0apalFxyXACPgWYx+tKOUnVB79692blzJ7t37yY3N5dFixYxYsSIYueMHDmy8K9cR44cYceOHYVj\nqINC48Z4br+dvNdf59zeveTOm4enSxdrdo8rriC8Xz84cMDuKJVSQUKTaFVtir5AOHFIBwBmfrCj\ncAo8pVTt5XK5mDNnDkOHDqVjx46MHj2azp07M3XqVJYuXQrA0KFDady4MZ06dWLQoEHMmDGDxo0b\n2xx5OerVw3PrreS99Rbndu8m79lnke+/J+yhh/SJtFIK0DHRKkDuGnARL6/fzaa9x1m34zBJiTXz\nFr5Syj7JyckkJycXK3vqqacKvxcRZs2axaxZs2o6tKpp0gT3b34Dp08T9vjjuN96C8+oUXZHpZSy\nmT6JVgERHeHiN1daU0bN0qfRSqlawP3gg3h69CBs4kQ4etTucJRSNtMkWlWrPdOHs2f6cAB+3bcN\nTaLD+SbjBKu/C+yiCkopFXAuF3n/+AccP07YpEl2R6OUspkm0SpgLgh38dukBMB6Gu3x6NNopVRo\nM5ddhvu//xvnwoU4Vq60OxyllI0ClkSLSKSIbBCRr0XkWxH5X2/5RSLyhYjsEpE3RCQ8UDEo+91x\nxYU0rx/B9gMnWfXtQbvDUUqpKsufPBlPp06E3X8/nDxpdzhKKZsE8kn0OWCwMaYr0A24VkT6AE8D\nzxhjEoDjwPgAxqBsFhnm5P5B1tPoZz7cgVufRiulQl14uDWs48ABXI8/bnc0SimbBCyJNpZs726Y\ndzPAYOBNb/l8YGSgYlDBYXTv1sTFRrHjUDbvf7Pf7nCUUqrKTO/euB94ANc//4ls22Z3OEopGwR0\nijsRcQKbgATg78CPQJYxJt97SgYQV07dFCAFoHnz5j4vQ11Sdna233Xrsurut2vi3PwrC6Yt/Zro\nYztwOuS854fqZ6b/3vyj/eYf7Td75T/yCM7nnsPx/vu4L73U7nCUqrRTp04F7c+QUPj5FtAk2hjj\nBrqJSCzwDnBJJeqmAqkAvXr1MklJSX7FsHbtWvytW5dVd7/1d3tYPXMd+46d4XiD9ozqGV/2iSuX\nAYTsZ6b/3vyj/eYf7TebNW+O6dUL5/LluKdMsTsapSotJiYmaH+GhMLPtxqZncMYkwV8BPQFYkWk\nIHmPBzJrIgZlrzCng4euag/Ac6t3kuf22ByRUkpVnXvYMGTjRjh0yO5QlFI1LJCzczT1PoFGRKKA\nIcB3WMl0wVJPY4ElgYpBBZcburWiXZN67Dt2hrc2ZdgdjlJKVZln2DDEGJz/+Y/doSilalggn0S3\nBD4SkW+AL4EPjDHvA5OBiSKyC2gMzA1gDCqIuJwOHrraehr9/JpdnMt3V/s92k5ZRtspy6r9ukop\nVRbTtSumZUscK1bYHYpSqoYFcnaOb4wx3Y0xXYwxlxpjnvKW/2SMudwYk2CMucUYcy5QMajgc32X\nVnRoHk1mVg6Lv0y3OxyllKoaEdzJyTg+/BByc+2ORilVg3TFQlWjHA7hkas7ADDno12czav+p9FK\nKXusXLmSxMREEhISmD59ernnvfXWW4gIGzdurMHoAsdz7bXIqVM41q+3OxSlVA3SJFrVuKGdW9Cp\nZX0OnTzHa1/sszscpVQ1cLvdTJgwgRUrVrB9+3YWLlzI9u3bS5136tQpZs+ezRVXXGFDlIHhGTQI\nExGBY/lyu0NRStUgTaJVjXM4hIlDrKfRL6zdxZnc/ApqKKWC3YYNG0hISKBdu3aEh4czZswYliwp\n/d74H/7wByZPnkxkZKQNUQZIvXp4kpJwrFxpdyRKqRqkSbSyxVUdm9G1dSxHsnN5JW2v3eEopaoo\nMzOT1q1bF+7Hx8eTmVl8BtOvvvqK9PR0hg8fXtPhBZxn2DAcu3YhO3faHYpSqoYEdLEVpcojYj2N\nHvvyBl41NTjFAAAgAElEQVRc9yO/6tOG6Aj956hUbeXxeJg4cSLz5s2r8NzU1FRSU1MBKzlPS0sr\ndjw7O7tUmd0imjWjH5D+wguk33KLz/WCsS3+0HYEn9rUlmClWYuyzcD2TejVpiEb9x7nX5/u5gHv\nYixKqdATFxdHevovM+5kZGQQFxdXuH/q1Cm2bdtWuALZwYMHGTFiBEuXLqVXr17FrpWSkkJKSgoA\nPXv2pG/fvsWOp6WllSoLBp7Onblo+3biKxFbsLalsrQdwac2tSVY6XAOZRsRYeI11tjolz75iRM5\neTZHpJTyV+/evdm5cye7d+8mNzeXRYsWMWLEiMLjDRo04MiRI+zZs4c9e/bQp0+fMhPoUOYZNsya\noePECbtDUUrVAE2ila36XdyEvu0ac/JsPnM/3W13OEopP7lcLubMmcPQoUPp2LEjo0ePpnPnzkyd\nOpWlS5faHV6NcA8bhuTnW3NGK6VqvQqHc4iIA+gKtAJygG3GmJ8DHZiqO353TQdG/SONlzWJViqk\nJScnk5ycXKzsqaeeKvPctWvX1kBENctccQWmUSOcK1bguflmu8NRSgVYuUm0iFyMtUT31cBO4DAQ\nCXQQkTPAi8B8Y4ynJgJVtVevto0Y2KEpH+84bHcoSinlP6cTzzXX4Fi1CtxucDrtjkgpFUDnG87x\nJ2ABcLExZqgx5lfGmFHGmC7ACKABcGdNBKlqv4J5owv0n76GdzdnlnO2UkoFJ/ewYciRIzg++MDu\nUJRSAVbuk2hjzG3nOfYz8GxAIlJ10p4jp3EIeIy1n5mVw2NvbwVgZPe489RUSqng4RkxAs/FF+N6\n9FFyk5KgNi0qo5QqpsIXC0XkFhGJ8X7/BxF5W0R6BD40VZfMWPVDYQJdICfPzYxVP9gTkFJK+SMy\nkvznnsPx44+4/vY3u6NRSgWQL7Nz/MEYc0pEBgBXAXOBFwIblqpr9mflVKo8ENpOWUbbKctq7H5K\nqdrJM3gw7ltvxTljhq5gqFQt5ksS7fZ+HQ6kGmOWAeGBC0nVRa1ioypVrpRSwSxv+nSIisL10ENg\nTMUVlFIhx5ckOlNEXgRuBZaLSISP9ZTy2aShiUSFFX+TPSrMyaShiTZFpJRSVdCiBflPPYXzo49w\nvPGG3dEopQLAl2R4NLAKGGqMyQIaAZMCGpWqc0Z2j2PaTZcVK5s4pIO+VKiUClnu8ePx9OpF2OTJ\ncPy43eEopaqZL0n0i8aYt40xOwGMMQfQqe1UAJRMmCPC9A8eSqkQ5nSS9/zzcOQIrieftDsapVQ1\n8yVL6Vx0R0ScQM/AhKPUL3TxFaVUqDPduuG+7z6cL72EbNlidzhKqWpUbhItIo+JyCmgi4ic9G6n\ngJ+BJRVdWERai8hHIrJdRL4VkYe85U+KSKaIbPFuyRVdS9VNn/14lNx8XRBTKRXa8n//e4iOxvWs\nLq+gVG1SbhJtjJlmjIkBZhhj6nu3GGNMY2PMYz5cOx/4nTGmE9AHmCAinbzHnjHGdPNuy6veDFXb\nJDaP4Uyum417j9kdilJKVU2DBrjHjsXx1luQqSuxKlVbnO9J9CXeb/8tIj1KbhVd2BhzwBjzlff7\nU8B3gL4lpnxyZWJTANbpkA6lVC3gnjABPB5c//iH3aEoparJ+cZET/R+nVnGVqllmESkLdAd+MJb\ndL+IfCMiL4tIw8pcS9UNA9tbSfTHO47YHIlSylcrV64kMTGRhIQEpk+fXur4rFmz6NSpE126dOGq\nq65i7969NkRpD9O2LZ7rr8c5dy6cPm13OEqpauAq74AxJsX7dVBVbiAi0cBbwMPGmJMi8gLwR8B4\nv84E7i6jXgqQAtC8eXPWrl3r1/2zs7P9rluX2d1vZ/ZtJdwJ3x04ybsr1xAbWbmZOqoSe1Xq2t1v\noUr7zT/B1G9ut5vx48czY8YMmjZtyr333kuLFi1o27Zt4TkiwqxZs4iMjGTJkiWMGzeOJ554wr6g\na1j+Aw8QsWQJztdew52SYnc4SnHq1Kmg+RlSUjD9fCtPuUl0ARGJBO4DBmAlvp8A/zDGnPWhbhhW\nAv2aMeZtAGPMoSLHXwLeL6uuMSYVSAXo1auXSUpKquh2ZVq7di3+1q3LbOu3lday29dcNYj++zbw\n0Q+HyW/agaSe8ZWq71fsVanrpf/e/KP95p9g6re0tDQuvfRSbr/9dgDuueceDhw4wLhx4wrPKRpr\ngwYN2LBhQ9DEXxNMv354evTAOWcO7nvuAYdO46nsFRMTE7T/B4Pp51t5fPkf/ArWNHfPA3O8379a\nUSUREWAu8J0xZlaR8pZFTrsR2FaZgFXdcWUHHRetVKjIzMykdevWhfvx8fFknuclurlz5zJs2LCa\nCC14iJD/wAM4du7EsWqV3dEopaqowifRwKXeGTYKfCQi232o1x9rUZatIlIwOeb/ALeJSDesp9p7\ngN9UIl5Vhwz0JtGf7jyM22NwOsTmiJRS1WHBggVs3LiRdevWlXk8NTWV1NRUwErO09LSih3Pzs4u\nVRYqJC6OPk2acOZPf+Lr2NiQbktR2o7gU5vaEqx8SaK/EpE+xpjPAUTkCmBjRZWMMZ8CZWU9OqWd\n8slFTeoR3zCKjOM5bMs8QdfWsXaHpJQqR1xcHOnp6YX7GRkZxMWVnpDpww8/5M9//jPr1q0jIiKi\nzGulpKSQ4h0z3LNnT/r27VvseFpaWqmyUOJ88EEaTZ1Kv+hoPoOQbkuBUP9MCtSWdkDtakuwOt8U\nd1tF5Bus1Qk/E5E9IrIbSAN61VSAqu4SER3SoVSI6N27Nzt37mT37t3k5uayaNEiRowYUeyczZs3\n85vf/IalS5fSrFkzmyK1n3v8eMwFF+CcM6f0QY8uMKVUqDjfk+jraiwKpcoxsENTXvtiHx/vOMyD\nV7W3OxylVDlcLhdz5sxh6NChuN1u7r77bjp37szUqVPp1asXI0aMYNKkSWRnZ3PLLbcAcOGFF7J0\n6VKbI7dBo0a4f/UrnPPmccmhQ4Tl5yMHDyIHDkB2NvmPP4570iSQqg9hc6xejadrV2jSpBoCV0oV\ndb4k+qgxJvt8lUUkuqJzlKqKfhc3xuUQNqdncSInjwZRYXaHpJQqR3JyMsnJycXKnnrqqcLvP/zw\nw5oOKWi5H3wQ57vv0nDzZuTCCzHt2uEZMADJyCDsiSeQ/fvJnzkTnE6/7yF79xJ+3XXkjxtH/gsv\nVGP0Sik4/+wcS0RkpogMFJF6BYUi0k5ExovIKuDawIeo6rKYyDB6tGmI22P4bJcuvKKUqh3MxRdz\nbu9e0hYtIveTT8hbvJj8Z5+1vj7yCK4XXyTszjvhbIWzyZbLsXgxAM4334Rsfd6lVHUrN4k2xlwF\nrMaaPeNbETkhIkeBBUALYKwx5s2aCVPVZTouWilVZzgc5P/lL+Q9/TTOd94hfMQIyMry61LOxYsx\nzZoh2dk43367mgNVSp13nmhjzHJjzB3GmLbGmAbGmMbGmH7GmD8bYw7WVJCqbitIoj/ecRhjjM3R\nKKVU4LkffJDc+fORzz8nfMgQ5McfK1Vftm3DsW0b+Y89hqdDB5zz5gUmUKXqMF0uSQW9Ti3r0yQ6\nnP0nzrLrZ/2TpFKqbvCMHk3ekiXIvn2E9+iBa+pUOH3ap7rOxYsxTifum2/G/etf40hLQ3bsCHDE\nStUtmkSroOdwCP/VXod0KKXqHs+gQZzbsgXPqFG4ZswgoksXa6zz+f4qZwzON97Ac9VV0LQp7jvu\nwDidOOfPr7nAlaoDNIlWIUHHRSul6qyWLcmbO5dza9ZgmjUjfOxYwocOhSKL2xQln3+O7NuH+9Zb\nrYIWLfAMG4bztdcgL68GA1eqdvMpiRaRASJyl/f7piJyUWDDUqq4Ae2tOU437D7G2Ty3zdEopVTN\nM337kvvpp+TNmYNs3kz4XXeVuTiL8403MJGReK6/vrDMPXYscugQjlWrajJkpWq1CpNoEXkCmAw8\n5i0Kw5qhQ6ka0yQ6gkvj6nMu38PnPx21OxyllLKH04l7/HjyZ83CsX596VUP8/Jwvv02nuHDISam\nsNhz7bWYFi10SIdS1ciXJ9E3AiOA0wDGmP1AzHlrKBUAv8zSofNFK6XqNvevfoU7ORnXE08Ue2HQ\n8dFHyOHDvwzlKOBy4b79dhwrVsBBnVxLqergSxKda6x5xQxA0YVXlKpJA70vF368U8dFK6XqOBHy\n5syBqCjC7rkH8vMB71CO2Fg811xTqop77FjE7bbGRiulqsyXJHqxiLwIxIrI/wM+BF4KbFhKldaj\nTUOiI1zs+jmbzKwcu8NRSil7tWxJ3jPP4PjyS5zPPANnzuBYuhT3yJEQEVHqdNOhA55+/XC+8sr5\nZ/dQSvmkwiTaGPM34E3gLSARmGqMeT7QgSlVUpjTQb+LGwPWwitKKVXXeUaPxj1yJK4//QnXzJlI\ndjaekkM5inCPG4djxw4c69bVYJRK1U6+vFh4EfCJMWaSMeZR4FMRaRvowJQqy5WJ3qnuftAkWqlg\ns3LlShITE0lISGD69Omljp87d45bb72VhIQErrjiCvbs2VPzQdY2IuQ99xw0aIDrL3/BtGiB57/+\nq9zT3TfeiGnalLDhwwm74w7kiy9qMFilahdfhnP8Gyg6h47bW6ZUjSsYF71+1xHy3KWndlJK2cPt\ndjNhwgRWrFjB9u3bWbhwIdu3by92zty5c2nYsCG7du3ikUceYfLkyTZFW8s0bUre89YfiN233AJO\nZ/nnRkdzLi0N9yOP4FizhoikJMKvvBLHW2/ByZM1FLBStYPLl3OMMbkFO8aYXBEJD2BMSpWrdaML\naNe0Hj8dPs2W9Cx6t21kd0hKKWDDhg0kJCTQrl07AMaMGcOSJUvo1KlT4TlLlizhySefBGDUqFHc\nf//9GGMQETtCrlU8N9xA7rvv4rn88opPjosj/09/In/KFJyvvopzzhzCf/UrAEx0NKZVK0yrVtCq\nFebCCzFt2mDatrW+xseDwwHHjyNHj8KRI8jRo8Smp0Pr1hAXByU/T2Os83fvRo4cgZwcyMlBzpyx\nvg8PxzRtimnaFAq+xsZa96lu+flWLMePW/euXx9Tvz7Urw9hYdV/P1Wr+ZJEHxaREcaYpQAicgOg\nc4wp2wxs35SfDp/m4x2HNYlWKkhkZmbSunXrwv34+Hi+KDFUoOg5LpeLBg0acPToUZo0aVKjsdZW\nnqFDK1chOhr3b3+LOyUFx4cfIt9+i+zfb22Zmci6dXDgAFJkQRfjcIAxSIkXE7sDPPoo5oILMO3b\nYxISwONB9uxBfvoJOXGi0u0x4eEQFQVRUZjISIiMtF6YDA+HiAiM9+VJycmBs2fhzBkrMc/Ls57G\nOxxWvE4nkpcHWVnIeZ62m6go+kVFEdaokZVcx8RYc21fcAGEhWFcLuu6Lpf1i4LHA243uN2I2w0e\nD8bptM4p2Lz9hfd44eZwWFvBOSKlf/nwlcdjtev4ceTYMetrVhZN77sP+vb175rKJ74k0fcCr4nI\nHECAdODXFVUSkdbAK0BzrOnxUo0xs0WkEfAG0BbYA4w2xhz3K3pVJ12Z2JR5n+1h3Y7D/O6aRLvD\nUUpVs9TUVFJTUwEr8U5LSyt2PDs7u1RZqAqattSvX2bCJfn5RBw+TOSBA0QeOkTUwYMYEfLq1yev\nQYNfvh4+TOMjR7ggI4MLMjKISksDEXJatSInKYmzrVqR07IluQ0b4o6MxBMRgTsiAk9EBI78fMKy\nsgjPyiLs+HHCs7JwZWfjOHcOR24uznPnCr935OXhyMtDTp3CcewYAJ7wcOua0dG4IyMxLpeV+Btj\nJbfGgMNBXv365MfEkBcTQ179+njCwnDl5OA8fRqXdzNZWUTm5eE6cwbnsWM4MzJw5uQgHg/iTZbF\n40E8How3STfehNg4HIXn4T1HjMGIFB43BcmyMYXHC871mwh59eqRFxNjtS8ujvxLLuF4dHRw/Nuq\nxSpMoo0xPwJ9RCTau5/t47Xzgd8ZY74SkRhgk4h8AIwDVhtjpovIFGAK1oqISvmkz0WNCXc52Jp5\ngqPZ52gcXXoqJ6VUzYqLiyM9Pb1wPyMjg7i4uDLPiY+PJz8/nxMnTtC4ceNS10pJSSElJQWAnj17\n0rdEcpeWllaqLFTVlrakpaXRpox21PNuoaKiz6Nw0YwySJFzOM95vlyrsgQI924FdtSSf1vBzJfZ\nOSJE5HbgQWCiiEwVkakV1TPGHDDGfOX9/hTwHRAH3AAUrDs6Hxjpb/Cq9tkzfTh7pg8/7zlR4U4u\nb9sIY+DTXTqySKlg0Lt3b3bu3Mnu3bvJzc1l0aJFjBgxotg5I0aMYL532ek333yTwYMH63hopVTI\n8mXU/hKsxDcfa+nvgs1n3inxugNfAM2NMQe8hw5iDfdQqlIKlgBfp/NFKxUUXC4Xc+bMYejQoXTs\n2JHRo0fTuXNnpk6dytKlSwEYP348R48eJSEhgVmzZpU5DZ5SSoUKMRWsWiQi24wxl/p9A2sYyDrg\nz8aYt0UkyxgTW+T4cWNMwzLqpQApAM2bN++5aNEiv+6fnZ1NdHS0f8HXYcHebxmnPPx+fQ71w4Vn\nB0Xh8D7NGrfS+v1u3rWV/wNiVeoWCPZ+C1bab/6pC/12ww030KJFi2JlJ06coEGDBn5f0+Px4AjE\nzA9+qGpbatL5+i2U2nE+gWiHXf/efGnLwYMHWbJkSQ1FVDl2/nwbNGjQJmNMr4rO8+XFws9E5DJj\nzNbKBiEiYVgrHb5mjHnbW3xIRFoaYw6ISEvg57LqGmNSgVSAXr16maSkpMreHoC1a9fib926LNj7\nzRjDnK1rOHjyLM0Te9C5lfcHxcplAP7FXpW6XsHeb8FK+80/daHfTpQxq0OvXr3YuHGj39cMpn6r\naltq0vn6LZTacT6BaIdd/95C/TMJpv+n5fHlV6MBWC8F/iAi34jIVhH5pqJKYg10mwt8Z4yZVeTQ\nUmCs9/uxWMNFlKoUEWFgB2tarI936LhopZRSStUsX5LoYUB74BrgeuA679eK9AfuBAaLyBbvlgxM\nB4aIyE7gau++UpV2ZYdmAKzbUeYfM5RSSimlAsaXKe72isgAoL0x5l8i0hSocJCKMeZTfpnxpaSr\nKhemUqUNSGiCQ2DT3uNkn8snOsKX0UmB03aKNRxkT5KtYShV6xVMf1cb1Ja2aDuCT21qS7DyZYq7\nJ7DmcX7MWxQGLAhkUEr5osEFYXRrHUue25D241G7w1FK1ZDalBzUlrZoO4JPbWpLsPJlOMeNwAi8\n09oZY/YDMYEMSilfDfROdfexTnWnlFJKqRrkSxKda6x58AyAiITS4kOqltP5opWqW1auXEliYiIJ\nCQkhNc/03XffTbNmzbj00l9mjD127BhDhgyhffv2DBkyhOPHj9sYoW/S09MZNGgQnTp1onPnzsye\nPRsIzbacPXuWyy+/nK5du9K5c2eeeOIJAHbv3s0VV1xBQkICt956K7m5uTZH6hu320337t257rrr\ngNBtRyjxJYleLCIvArEi8v+AD4GXAhuWUr7pEh9L7AVh7Dt2hj1HKrUGUFBpO2VZ4ZhqpVTZ3G43\nEyZMYMWKFWzfvp2FCxeyfft2u8Pyybhx41i5cmWxsunTp3PVVVexc+dOrrrqqpD4pcDlcjFz5ky2\nb9/O559/zt///ne2b98ekm2JiIhgzZo1fP3112zZsoWVK1fy+eefM3nyZB555BF27dpFw4YNmTt3\nrt2h+mT27Nl07NixcD9U2xFKKkyijTF/A97Emu85EZhqjHk+0IEp5QunQxiQYE11p0+jlardNmzY\nQEJCAu3atSM8PJwxY8YE7UIRJQ0cOJBGjRoVK1uyZAljx1ozvo4dO5Z3333XjtAqpWXLlvTo0QOA\nmJgYOnbsSGZmZki2RUQKF/PIy8sjLy8PEWHNmjWMGjUKCJ22ZGRksGzZMu655x7AWkshFNsRanxa\nQscY84ExZpIx5lFjzAeBDkqpytBx0UrVDZmZmbRu3bpwPz4+nszMTBsjqppDhw7RsmVLAFq0aMGh\nQ4dsjqhy9uzZw+bNm7niiitCti1ut5tu3brRrFkzhgwZwsUXX0xsbCwulzXbU6j8G3v44Yf561//\nWrgy4tGjR0OyHaHGl9k5TonISe92VkTcInKyJoJTyhcD21tJdNpPOkOHUio0iQjWGmWhITs7m5tv\nvplnn32W+vXrFzsWSm1xOp1s2bKFjIwMNmzYwPfff293SJX2/vvv06xZM3r27Gl3KHWOL/NEF87E\n4V2F8AagTyCDUqoyWjSI5JIWMXx/8JTdodimcI7q6cNtjkSpwImLiyM9Pb1wPyMjg7i4OBsjqprm\nzZtz4MABWrZsyYEDB2jWrJndIfkkLy+Pm2++mTvuuIObbroJCN22FIiNjWXQoEGkpaWRlZVFfn4+\nLpcrJP6NrV+/nqVLl7J8+XLOnj3LyZMneeihh0KuHaHIp+EcBYzlXWBogOJRyi8FQzqUUrVX7969\n2blzJ7t37yY3N5dFixYxYsQIu8Py24gRI5g/fz4A8+fP54YbbrA5oooZYxg/fjwdO3Zk4sSJheWh\n2JbDhw+TlZUFQE5ODh988AEdO3Zk0KBBvPnmm0BotGXatGlkZGSwZ88eFi1axODBg3nttddCrh2h\nqMIn0SJyU5FdB9ALOBuwiJTyw5UdmpL68U92h6H8oCs9Kl+5XC7mzJnD0KFDcbvd3H333XTu3Nnu\nsHxy2223sXbtWo4cOUJ8fDz/+7//y5QpUxg9ejRz586lTZs2LF682O4wK7R+/XpeffVVLrvsMrp1\n6wbAX/7yl5Bsy4EDBxg7dixutxuPx8Po0aO57rrr6NSpE2PGjOH3v/893bt3Z/z48XaH6penn366\nVrQjmPmyTvL1Rb7PB/ZgDelQKmj0atuQMIeQ5zEA9J++hklDExnZXf98pVRtkpycTHJyst1hVNrC\nhQvLLF+9enUNR1I1AwYMwFo6orRQa0uXLl3YvHlzqfJ27dqxYcMGGyKquqSkJJKSkoDQbkeo8GVM\n9F01EYhSVbFi60HcRX6wZ2bl8NjbWwE0kVZKKaVUtfNlOMdz5ztujHmw+sJRyj8zVv2Ap8TDkZw8\nNzNW/aBJtFJKKaWqnS8vFkYCPYCd3q0bEA5s8m5K2W5/Vk6lypVSSimlqsKXMdFdgAHGmHwAEfkH\n8Ikx5t6ARqZUJbSKjSKzjIS5RYNIG6JRSimlVG3ny5PohkDRmdSjvWVKBY1JQxOJCnOWKr8g3MnZ\nPLcNESmllFKqNvMliZ4ObBaReSIyH/gK+Etgw1KqckZ2j2PaTZcV7jevH0FMhJMfD5/m3gWbyM33\n2BidUkoppWqbCpNoY8y/gCuAd4C3gb7GmPmBDkypyir6AuEX/3M1b9/Xn0b1wln7w2EeWrSZfLcm\n0koppZSqHhUm0d6lvq8GuhpjlgDhInJ5wCNTqoraN4/hlbsvJybSxYptB/nvN7/BU3IKD6WUUkop\nP/gynOP/gL7Abd79U8DfAxaRUtXo0rgGzLurNxeEO3l7cyZ/WLKt3IUClFJKKaV85UsSfYUxZgLe\npb6NMcexprg7LxF5WUR+FpFtRcqeFJFMEdni3UJv2SkVcnq2acQ/f92LcJeD177Yx7QV32sirZRS\nSqkq8SWJzhMRJ2AARKQp4Mvg0nnAtWWUP2OM6ebdlvscqVJV0C+hCf/4VQ9cDiH14594bvUuu0NS\nSimlVAjzJYl+DuulwmYi8mfgU3yYncMY8zFwrGrhKVV9Bl/SnNljuuMQeObDHbz08U92h6SUUkqp\nEOXL7ByvAf8NTAMOACONMf+uwj3vF5FvvMM9dL5pVaOGd2nJX0d1BeDPy79jwed7bY5IKaWUUqFI\nKhobKiIXAxnGmHMikoS1guErxpisCi8u0hZ43xhzqXe/OXAEa2jIH4GWxpi7y6mbAqQANG/evOei\nRYt8bFJx2dnZREdH+1W3LgvVfhu38jQA866td97zVu/L49XtuQhwz2Xh9I8L87luVe9d3XWro76d\nQjl2u4Xq/1O7ab/5R/vNP9pv/rGz3wYNGrTJGNOrovN8Wfb7LaCXiCQALwJLgdeBSr8UaIw5VPC9\niLwEvH+ec1OBVIBevXqZpKSkyt4OgLVr1+Jv3bosZPtt5TKACmNPAuLX/ci0Fd8zd1suPbpcirWO\nUMV1q3rvaq9bHfXtFMqx2yxk/5/aTPvNP9pv/tF+808o9JsvY6I9xph84CZgjjFmEtDSn5uJSNF6\nNwLbyjtXqUD7zZUX8+BV7fEYmPD6V4Xl/aev4d3NmTZGppRSSqlg58uT6DwRuQ34NXC9tyysokoi\nshDrgV8TEckAngCSRKQb1nCOPcBv/IhZqWrzyNXt+Tr9OOt2HCksy8zK4bG3twLFV0FUSimllCrg\nSxJ9F3Av8GdjzG4RuQh4taJKxpjbyiieW8n4lAooEWHXz9mlynPy3MxY9YMm0UoppZQqU4VJtDFm\nO/Bgkf3dwNOBDEqpmrQ/62w55Tk1HIlSSimlQoUvY6KVqtVaxUZVqlwppZRSSpNoVedNGppIVJiz\nWFmYU5g0NNGmiJRSSikV7M6bRIuIU0T+VlPBKGWHkd3jmHbTZcXK6oW7uK6LX5PQKKWUUqoOOG8S\nbYxxAwNqKBalbFP0BcK2jS8gKyePD7YfOk8NpZRSStVlvgzn2CwiS0XkThG5qWALeGRK2eSu/hcB\n8PL63TZHopRSSqlg5UsSHQkcBQZjzRN9PXBdIINSyk6jesYTE+niyz3H+SajwtXtlVJKKVUH+TLF\n3V01EYhSwaJehIvbLr+Q1I9/4uVPd/PsmO52h6SUUkqpIFPhk2gR6SAiq0Vkm3e/i4j8PvChKWWf\nX/dtg0Pg/W8OcOhk2fNIK6WUUqru8mU4x0vAY0AegDHmG2BMIINSym7xDS9g2KUtyfcYXknbY3c4\nSimllAoyviTRFxhjNpQoyw9EMEoFk7sHtAXg9S/2kZPrtjcYpZRSSgUVX5LoIyJyMWAARGQUcCCg\nUbUxVYwAACAASURBVCkVBHpc2JCu8Q04fiaPdzZn2h2OUkoppYKIL0n0BOBF4BIRyQQeBu4NaFRK\nBQER4e4Bv0x3Z4yxOSKllFJKBYsKk2hjzE/G/P/27j0+qvrO//jrM7mQcA0XjSFQwRusCiLgBUVF\nqhWrrVZdtdta3bXV7q9d222Lwra7rW67Yt1t67Zuu9Za7UVtq2hdENGCEUWtgkhABUUJarjK/RJy\nm8/vjzkThiSTzEwuZ4a8n4/HPDLznfme72c+c5J8cvI93+PnAYcBo919sruv6/rQRML3yTFlHNG/\niDWb97DonY/CDkdERESyRCqrcww2s/8GngcqzOwuMxvc9aGJhK8gL8IXzjgSgPteOHQvvjJixlxG\nzJgbdhgiIiI5I5XpHA8DW4DLgSuC+3/oyqBEsslnT/kYRQURnnt7C2s27w47HBEREckCqRTRZe7+\n7+6+Nrh9Hyjt6sBEssXAPoVcNn4YAPctrgo3GBEREckKqRTRT5vZ1WYWCW5XAvO7OjCRbPIPZ44A\nYPZrH7J9b124wYiIiEjoUimivwQ8CNQGt4eBG81st5nt6srgRLLFMYf345zjDmN/fZQHX3k/7HBE\nREQkZKmsztHP3SPuXhDcIkFbP3fvn6yfmd1nZpvjlwsP2gaZ2TNm9k7wdWBnvRGRrnZ9sNzdb16q\noq4hGm4wIiIiEqpUjkRn6n5gWrO2GcACdz8WWBA8FskJZx07hGMP78umXbXMW6nrDYmIiPRkXVZE\nu/siYFuz5kuAB4L7DwCXdtX4Ip0t8eIrv3pBF18RERHpybrySHRrSt09fghvI1rlQ3LMZ04uZ2Dv\nAio/3MnSddvDDkdERERCkt/eC8zst+5+TXtt6XJ3N7Okh/LM7AbgBoDS0lIqKioyGmfPnj0Z9+3J\ncj1vHYm9vb5nHgFz3oNZj73CV08u6taxs71/ro6dq3L9+zQsyltmlLfMKG+ZyYW8tVtEAyckPjCz\nPGBChuNtMrMyd99gZmXA5mQvdPd7gHsAJk6c6FOmTMlowIqKCjLt25PlbN6eil11L6PYU+z7N+P3\n89Sshby2uZGjx57K8EG9u23srO3fEWGOneNy9vs0ZMpbZpS3zChvmcmFvCWdzmFmM81sNzDWzHYF\nt93ECt8/ZzjeE8C1wf1rO7AdkdCU9i/i4rFlRD22UoeIiIj0PEmLaHe/3d37AXe6e//g1s/dB7v7\nzPY2bGYPAS8Bo8zsQzO7HpgFnG9m7wDnBY9Fcs71k48C4OFXPmBPbUPI0YiIiEh3S2U6xxwz6+Pu\ne83s88B44C53X9dWJ3f/bJKnPp5ukCLZZsywAZwyYiCvVm3nkSUfcN2ZI8MOSURERLpRKqtz/BzY\nZ2YnAd8E3gV+06VRieSA+MVXfv1iFY1RLXcnIiLSk6RSRDd4bEHcS4CfufvdQL+uDUsk+51//BEM\nG1jMuq37WLgq6TmyIiIicghKpYjebWYzgWuAuWYWAQq6NiyR7JcXMa47YwQAv3rhvXCDERERkW6V\nShF9FVAL/IO7bwSGAXd2aVQiOeLKU4bTpzCPl99rfnFOEREROZS1W0QHhfPvgQFmdjGw3901J1oE\n6F9UwN9OHB52GCIiItLN2i2izexK4BXgb4Ergb+a2RVdHZhIrvj7M0cc9PjMWQt5fFl1OMGIiIhI\nt0hlOse3gVPc/Vp3/wJwKvCvXRuWSO5Y9v4OInbgcfWOGm5+pJK7n13Dpl37qWuIttk/seBWAS4i\nIpIbUlknOuLuiUsPbCW14lukR7hz/mqar3BX1xjlzvmruXP+agD69cpnUN9CBvYuZHCfQgb2iX1d\nv6OGp97Y2NSvekcNM2evAODSk8u77T2IiIhIelIpop8ys/nAQ8Hjq4B5XReSSG5Zv6Mm6XND+vZi\n+746dtc2sLu2gXVb97W7vZr6Rv7jybe4ZNxQzKzd14uIiEj3a7eIdvfpZnYZMDlousfdH+vasERy\nx9CSYqpbKaTLS4pZPGMq0aize38DW/fWsm1v3YHbvjp++NTqVre5eXct037yPJ8ZX84l44ZSNqC4\nq9+GiIiIpCFpEW1mxwCl7r7Y3WcDs4P2yWZ2tLu/211BimSz6ReMYubsFdTUNza1FRfkMf2CUQBE\nIsaA3gUM6F3AUYcd3Pf3L7/fagEeMVi9aTez5q3ijqdWcfrIwXxmfDkXnngE/Yq0TLuIiEjY2prb\n/BNgVyvtO4PnRITY3OXbLxvT9Li8pJjbLxuT0pzm6ReMorgg76C24oI8fnj5WH75hYlcNKaMgrwI\nL723lZsfqWTi9//CVx58jQVvbaK+MXbCok5MFBER6X5tTecodfcVzRvdfYWZjeiyiERy0KUnl/P1\nP7wOwOIZU9PqBzT1LS8pZvoFo5razz++lF3765m3YgOPLavm5fe2MbdyA3MrNzCoTyHHl/Xj1art\nTdvLtRMTm/8BkPjeRUREsllbR6JL2nhOEzRFOkli0bh4xtQWRWT/ogKuOuVjPHzDJBbPmMrN00Zx\n7OF92ba3jhfWbKW22RJ6NfWNTauCZLPHl1U3Ffxw4A8AHUkXEZFc0FYRvcTMvtS80cy+CCztupBE\nJJnykmL+35RjePqfz2buTZOTvq6tFUOyxZ3zVx80jxxy5w8AERGRtqZzfB14zMw+x4GieSJQCHym\nqwMTkeTMjBOGDqA8ycogpf17hRBVepIV+rnwB4CIiEjSI9HuvsndzwBuBaqC263uPsndNybrJyLd\np7UTEwH21jZQ+eGOECJKXVlJUavtQ0s0W0xERLJfu1cedPdn3f2nwW1hdwQlIqlpvjJI2YAijh7S\nh921jVz5vy8xb8WGEKNr29TRh7doy49Y09KAIiIi2UyX7xbJcYknIr408+PM+/rZXDlxGPvro/zj\n71/j7mfX4O5tbKH7uTuvrWt5pNzdmThiYAgRiYiIpEdFtMghpjA/wh2Xj2XmhaMxi53A980/Lae2\nobH9zt3kxXe38uaGXQzpe2Du9iXjhtLoMGveqhAjExERSU0oRbSZVZnZCjN73cyWhBGDyKHMzLjx\nnKP5xecnUFyQx+zXqvn8vX9l2966sEMD4J5F7wFw7aQjm9pumTaaooIIcyo3sKRqW1ihiYiIpCTM\nI9Hnuvs4d58YYgwih7QLTjiCP315Ekf0L+LVqu1cevdi1mzeHWpMqzfu5rm3t1BUEOHzpx8oooeW\nFHPD2UcDcNucN4lGs2sKioiISCJN5xA5xJ1YPoA/f/VMxpQP4P1t+/jM/7zI8+9sCS2ee5+PHYW+\ncuJwBvYpPOi5L59zFKX9e1H54U4e00VXREQki4VVRDvwtJktNbMbQopBpMco7V/EH2+cxLQTjmD3\n/gau+/Wr/O7ldd0ex+Zd+3n89WrM4PrJI1s837swn1umjQbgh/NXsbe2obtDFBERSUlbF1vpSpPd\nvdrMDgeeMbNV7r4o8QVBcX0DQGlpKRUVFRkNtGfPnoz79mS5nreOxN7R953NY185zMmvKWDOe/V8\n5/GVPLdsFZ8dfeBocFd/5o+8XUd9ozOxNI+1K15lbcJz8bFL3Bk5IMLanbXM/M1CLju2sNVtSe5/\nn4ZFecuM8pYZ5S0zuZC3UIpod68Ovm42s8eAU4FFzV5zD3APwMSJE33KlCkZjVVRUUGmfXuynM3b\nU3MBMou9I31zaOyp58K5Sz9kxuxKnlnXwIe1By5u8u2Xo0y/YNRBy+Z1lr21DdxUsQCAmZedxoQj\nByaNfcBR27j85y8xf10jt/ztaZTrAiytytnv05Apb5lR3jKjvGUmF/LW7dM5zKyPmfWL3wc+Aazs\n7jjk0FQ16yKqZl0UdhhZ7/IJw/j9F0+nd0GEtzYeONGwekcNM2ev4PEumI/8pyUfsGt/AxOOHHig\ngE5iwpGD+NRJQ6ltiHJHO0vejZgxlxEz5nZmqCIiIu0KY050KfCCmS0HXgHmuvtTIcQh0qOdOnIQ\n/YoLWrTX1Ddy5/zVnTpWQ2OUXy2OTd740llHpdTnlmmj6JUf4Ynl61m6TkveiYhIdun2Itrd33P3\nk4LbCe7+g+6OQURiNu+qbbV9/Y6aTh1n/hub+GBbDSMG9+b840tT6jNsYG9uODtWcN825y0teSci\nIllFS9yJ9GBDk8w1TtaeCXfnnkXvAnD9WUeRF7GU+375nKM5vF8vln+wgz8v15J3IiKSPVREi/Rg\n0y8YRXFBXov2G89JbcpFKl6t2s7yD3cysHcBV4wfllbfPr3yuTlY8u6OeavZV6cl70REJDuoiBbp\nwS49uZzbLxvT9LgwP/Yj4dlVm3HvnOkTvwwurnLN6UdSXNiyYG/PZSeXM6Z8ABt37W+6XLiIiEjY\nVESL9HCJy9k9N30KA4oLeHb1Fn7zUscvxvLulj385a1NFOZHuGbSiIy2EYkY//ap4wH4xXPvsmFn\n587XFhERyYSKaBFpUjagmFnBkekfPPkWqxOWv8vEr15YiztcPr6cw/r1yng7p4wYxEVjy9hfH+WH\nT3XuyiEiIiKZUBEtIge5cEwZV00cTl1DlJseWsb++saMtrN1Ty2PLv0QgOsnd3yO9YxpoynMj/DY\nsmqWvb+9w9sTERHpCBXRItLCv33qeEYO6cPqTbuZ1c7FTpL57cvrqG2I8vHRh3PM4X07HNPwQb35\n0lkjAbhtzpudNmdbREQkEyqiRaSFPr3yuevqceRHjPtfrOLZ1ZvT6r+/vrFpTvWXzu68lT7+ccox\nHNavF8ve38ETy9d32nZFRETSpSJaRFo1dlgJ3/jEcQBM/9Nytuxu/cIsrXn0tQ/ZtreOscMGcNrI\nQZ0WU99e+Uy/YBQAd8xbRU1dZlNNREREOkpFtIgkdePZR3P6UYP4aE8dNz+yPKUpFNGoc+/zBy7x\nbZb6xVVSccX4YZwwtD/rd+5vWj5PRESku6mIFpGk8iLGj68a17Ts3QMvVrXb5y9vbWLtR3spLynm\nwhOP6PSYIhHj3y6OLXn30wXvNLWfOWshjy/TVQ1FRKR7qIgWkTYlLnv3H/NWsWrjrjZfHz8K/Q+T\nR5Kf1zU/Yk47ajAnDetPffTAkfHqHTXMnL1ChbSIiHQLFdEi0q7EZe++9tDrSZe9W/b+dl6p2ka/\nonyuOmV4l8a0cVfLOdo19Y3cOV/rSIuISNdTES0iKUll2bv4UejPnXYkfXvld2k8m1spogHW79AV\nDUVEpOupiBaRlLS37N37W/cxb+UGCvKM684Y0eXxDC0pThrn7v31XT6+iIj0bCqiRQJVsy6iatZF\nYYeR1cYOK+Gbn4gtMdd82bv7Fq8l6vDpk8o5YkBRl8cy/YJRFBfktWjfU9vAuf9ZwR9f/YBoVBdk\nERGRrqEiWkTScuPZRzHpqMEHLXu3Y18df1zyAQBfDK4q2NUuPbmc24MTHgHKS4r5xvnHMuHIgbHY\nHq3kkrsXs6RqW7fEIyIiPYuKaBFJSyRi/Oiqk5qWvRs580nG3fYM++oaGVXal78p699tsVx6cnnT\n/cUzpnLTx4/jkS9P4q6rx1E2oIgV1Tu54hcvcdNDyzRXWkREOpWKaBFJW9mAYi47eWiL9rUf7Qt9\niTkz45Jx5Sz45jnc9PFj6ZUf4Ynl65n6XxXc9Zd3dJVDERHpFF17+nwSZjYNuAvIA+5191lhxCEi\nmXv6zc0t2uoao9w5f/VBR4jD0rswn2+cfxxXThzG7fNWMbdyAz/+y9v8cckHzPzkaOobovzn02+z\nfkcNQ0uKmX7BqLTifnxZNXfOX51xfxERyW3dXkSbWR5wN3A+8CHwqpk94e5vdncsIpK5ZNMjsm3a\nxLCBvbn778bzhdO3cuv/vcmbG3bx1QeXETGIn3cYv1ALkFIh/PiyambOXkFNsF52Jv07UoDH+1fv\nqKH85YXd+gdAZ8Ue5tjKm/LWnWP3tLx1VuyZ5q07hXEk+lRgjbu/B2BmDwOXACqiRXLI0JJiqlsp\nmJMtPRe2044azP/902T+8OoHfOfxFTRfuKOmvpGZs1ew6J0tRMyIGETMsIT7EYtNF/nT0g+aCujE\n/t99YiW799dTmB+hIC9CYX6EwvjX/Ai98iO8uGYrP3t2DbUNUSBWgN/yaCWbdu3n3NGHE3WnMepE\no8Tuu+PuNEahMeo8/84W7n1+LXWNB/rf/Ggl67bt5eOjSynIi1CQZxTkRcjPM/IjsRjy84z8POPJ\n5Rv4l8dXHvQHwIzZldTWNzLtxDLqGqM0RKPUNzj10SgNjU59Y5T6xigLV23mf5977+CxH6nkzfU7\nmXT0kFgirGXu400vvvsR9y9e16L/25t3c/axhx2U48SvETMq3t7MTxe0zNvGnTWcd3xpK6OBJcSy\n4K1N/NfTb7fov31fHdNOPIK85p91JPFzN+ZWruc7f17J/voD/eN5u3BsGR6FRnei8Vv884s6T7+x\nkR/OX91i7I/21PKJ44/ALHaugXFgPyNh7HkrNvDvc988aOxbHq1k655azhl1OA3B51TXGPva0Bht\nur/43S387uX3qW/0pr7TH1nOX9duZcKRg7AgT/FcGXZQ3pas287Drxzc/+ZHlrNy/U7OPHoIkYiR\nZ0YkEos3L2IJX+G5t7fws4UtP7ft++r45JgyImbkR2L5zo/E+uUF23xi+fo2/1h1d6J+IM/uCd8z\nUZhTub5F3mbMrmRffQOfGju0KU4Lch3bB2L7XVt/KF8ybiiN0dg40eBzj33PxtucJ1du4PYnV7V4\n3ztr6vjkmKFN7zES4aCc5QX7Xkf+UO+MP/K7qv8l44bifuB7xT32cy0afJZzK9dz25yDP7N0xu5u\n5t69S0CZ2RXANHf/YvD4GuA0d/9qsj4TJ070JUuWZDReRUUFU6ZMyahvT6a8pW/EjLkAGS2T15G+\nYfVv/oMSoLggj9svG5PWD7swYh85Yy5a/E4kd5lBV5UvXbntjjKguLDl0p6JauoaW/35lkrfruzf\nEeUlxSyeMbWTt5qcmS1194ntvS6UOdGpMLMbgBsASktLqaioyGg7e/bsybhvT6a8Za4jeetozruz\nfwlwzd/kcU9lrIgeXGRcflweJTvfoaLinS4du6P9BxUZW/e3/DHftwCuHl0YO6JF7BepOzixqR8e\ntD2+po59DS23W5QHk4bm0xCFhqhTHyW4D/VRpyEK7+6MJo1raJ9mR2AhOEoWuxmwenvy/sP7RYKj\nYrExG50Dj53Y0ew2frv1zoe8COSbkReBPIP8COQFj9e2EfvYIXmt/uJMbFv5UfKTOkcNjBzIc0Ku\n4yOu25V87LI+1mKsxAcObNqX/I2X9LJgPG8aM9rss69PPjxFecHn0/Q52UGfWWv7WtyQYjvo/Toc\niCVo29PGtYOO6B37bPIjRp61/MyWb0me8zOG5uN4U67iUXrC41c2Ju8/Zkhe0xHEeJ7it3ge2/rc\nBvSypv7xW2PQt639NDHG2NH7hK8J91v7Ho0ryjv4e7zpfsK22xIfo8WN2PfvrrrkG+lX2CxP8Ru0\n+A9Zi/cN7Mvw5OiO9O2M/nHx/37Ef74l3q9J8plV76jJypokjCK6Ghie8HhY0HYQd78HuAdiR6Iz\nPSqqI6qZUd4y8FTsiGhGeetI3xD7TwH+5e8yG7KjY3ek/78OaP0o+vdTPIp+ageOwp85a2Gr02BS\nPdLSVv/nU+q/gOod+zMav62xn/hWx2Kff0vmY3c0b13dP1vHfvCmjo39fx38zNuL/YxZC1jfyr46\ntKSIF26e2jT1ojPHjk8ROeuHC5OOvfiWqW2Om+nYcdGoMznJ+GUDivjLN85ps/95P3qODTsz69uV\n/VPJXVt5y8aaJIwl7l4FjjWzkWZWCFwNPBFCHCLSQ8Uv1FJeUowR+wGdzjSUjvRv7UqLxQV5TL9g\nVEpjd7z/6Iz7hxl7+HnLzdhzOW83J9lXb75gdGwOeTuFbCZjWzA3ua2x2xs307HjIm2Mf8u00fTp\nld/m7ZZpmfftyv6p5K6j+1t36/Yj0e7eYGZfBeYTW+LuPnd/o7vjEJGe7dKTyzt0okqm/eN9Mj1z\nPbF/9Y4ayjvQP93xOzP2MMdW3pS37hy7J+WtM2PPJG/drdtPLMyETizsfspb+nraiYWdJZdjD5u+\nTzOjvGVGecuM8paZMPOW6omFumKhiIiIiEiaVESLiIiIiKQpa5e4ExFJRU+cxiEiIuHTkWgRERER\nkTSpiBYRERERSZOKaBERERGRNKmIFhERERFJk4poEREREZE0qYgWEREREUmTimgRERERkTSpiBYR\nERERSZOKaBERERGRNOmKhSKiq/6JiIikSUeiRURERETSpCJaRERERCRNms4hkgU0nUJERCS36Ei0\nSCepmnUR90/rE3YYIiIi0g1URIuIiIiIpElFtIiIiIhImlREi4iIiIikSUW0iIiIiEiatDqHyCEg\nl1f3qJp1ERUVFWGHISIikhYdiRYRERERSZOKaBERERGRNKmIFhERERFJk4poEREREZE0qYgWERER\nEUmTimgRERERkTSpiBYRERERSZOKaBERERGRNKmIFhERERFJk4poEREREZE0qYgWEREREUmTimgR\nERERkTSZu4cdQ7vMbAuwLsPuQ4CPOjGcnkJ5y4zylhnlLTPKW2aUt8wob5lR3jITZt6OdPfD2ntR\nThTRHWFmS9x9Ythx5BrlLTPKW2aUt8wob5lR3jKjvGVGectMLuRN0zlERERERNKkIlpEREREJE09\noYi+J+wAcpTylhnlLTPKW2aUt8wob5lR3jKjvGUm6/N2yM+JFhERERHpbD3hSLSIiIiISKc6ZIto\nM5tmZqvNbI2ZzQg7nlxhZlVmtsLMXjezJWHHk83M7D4z22xmKxPaBpnZM2b2TvB1YJgxZqMkefue\nmVUH+93rZvbJMGPMNmY23MyeNbM3zewNM/ta0K79rQ1t5E37WzvMrMjMXjGz5UHubg3aR5rZX4Pf\nrX8ws8KwY80WbeTsfjNbm7C/jQs71mxkZnlmtszM5gSPs35fOySLaDPLA+4GLgSOBz5rZseHG1VO\nOdfdx2X70jJZ4H5gWrO2GcACdz8WWBA8loPdT8u8Afw42O/GufuT3RxTtmsAvunuxwOnA18JfqZp\nf2tbsryB9rf21AJT3f0kYBwwzcxOB+4glrtjgO3A9SHGmG2S5QxgesL+9np4IWa1rwFvJTzO+n3t\nkCyigVOBNe7+nrvXAQ8Dl4Qckxxi3H0RsK1Z8yXAA8H9B4BLuzWoHJAkb9IGd9/g7q8F93cT+0VT\njva3NrWRN2mHx+wJHhYENwemAo8E7drnErSRM2mHmQ0DLgLuDR4bObCvHapFdDnwQcLjD9EPzlQ5\n8LSZLTWzG8IOJgeVuvuG4P5GoDTMYHLMV82sMpjuoWkJSZjZCOBk4K9of0tZs7yB9rd2Bf9efx3Y\nDDwDvAvscPeG4CX63dpM85y5e3x/+0Gwv/3YzHqFGGK2+glwMxANHg8mB/a1Q7WIlsxNdvfxxKbC\nfMXMzg47oFzlsaVvdBQiNT8Hjib2L9ANwH+FG052MrO+wKPA1919V+Jz2t+SayVv2t9S4O6N7j4O\nGEbsP7yjQw4p6zXPmZmdCMwklrtTgEHALSGGmHXM7GJgs7svDTuWdB2qRXQ1MDzh8bCgTdrh7tXB\n183AY8R+cErqNplZGUDwdXPI8eQEd98U/PKJAr9E+10LZlZArBD8vbvPDpq1v7Wjtbxpf0uPu+8A\nngUmASVmlh88pd+tSSTkbFowrcjdvRb4NdrfmjsT+LSZVRGbfjsVuIsc2NcO1SL6VeDY4MzOQuBq\n4ImQY8p6ZtbHzPrF7wOfAFa23UuaeQK4Nrh/LfDnEGPJGfFCMPAZtN8dJJgf+CvgLXf/UcJT2t/a\nkCxv2t/aZ2aHmVlJcL8YOJ/YnPJngSuCl2mfS5AkZ6sS/tA1YvN6tb8lcPeZ7j7M3UcQq9cWuvvn\nyIF97ZC92EqwZNFPgDzgPnf/QcghZT0zO4rY0WeAfOBB5S05M3sImAIMATYB3wUeB/4IfAxYB1zp\n7jqJLkGSvE0h9q91B6qAGxPm+vZ4ZjYZeB5YwYE5g/9CbH6v9rck2sjbZ9H+1iYzG0vsZK48Ygfc\n/ujutwW/Jx4mNi1hGfD54Ahrj9dGzhYChwEGvA58OeEERElgZlOAb7n7xbmwrx2yRbSIiIiISFc5\nVKdziIiIiIh0GRXRIiIiIiJpUhEtIiIiIpImFdEiIiIiImlSES0iIiIikiYV0SLSo5nZt83sjeCS\nvK+b2Wlhx9RRZvaT+NVGzezrZtY74bmsXlrLzKrMbEgbzz9sZsd2Z0wiIq1RES0iPZaZTQIuBsa7\n+1jgPOCDcKPqGDMbDJzu7ouCpq8Dvdvokmt+DtwcdhAiIiqiRaQnKwM+ii/g7+4fuft6ADObYGbP\nmdlSM5ufcNWxCWa2PLjdaWYrg/brzOxn8Q2b2ZzgwgGY2SfM7CUze83M/mRmfYP2KjO7NWhfYWaj\ng/a+ZvbroK3SzC5vazvNXA48Fbz+JmAo8KyZPZsQ2w+C+F82s9KgbYSZLQzGW2BmHwva7zezKxL6\n7gm+lpnZouDo/UozOyto/7mZLQmO7t+a0C/Zex1sZk8Hr7+X2AUp4ldQnRvEudLMrgo29TxwXsLl\ngEVEQqEiWkR6sqeB4Wb2tpn9j5mdA2BmBcBPgSvcfQJwHxC/euevgX9y95NSGSCYmvAd4Dx3Hw8s\nAb6R8JKPgvafA98K2v4V2OnuY4Ij5AtT2E7cmcBSAHf/b2A9cK67nxs83wd4OYh/EfCloP2nwAPB\neL8H/rudt/Z3wHx3HwecROxKbADfdveJwFjgnOAqbm291+8CL7j7CcSumPqxoH0asN7dT3L3Ewn+\nMHD3KLAmGFNEJDQqokWkxwouvTsBuAHYAvzBzK4DRgEnAs+Y2evEitdhZlYClCRMlfhtCsOcDhwP\nLA62dS1wZMLzs4OvS4ERwf3zgLsT4tyewnbiyoL3kkwdMKeVMScBDwb3fwtMbvtt8Srw92b2i3oK\nnQAAAoJJREFUPWCMu+8O2q80s9eIXab3hCDmuNbe69nA7wDcfS6wPWhfAZxvZneY2VnuvjNhO5uJ\nHWEXEQmN/h0mIj2auzcCFUCFma0gVpwuBd5w90mJrw2K6GQaOPjARFG8G/CMu382Sb/a4Gsjbf9M\nbm87cTUJY7em3t09xTEh4X2ZWQQoBHD3RcHJixcB95vZj4hNtfgWcIq7bzez+5vFkup7xd3fNrPx\nwCeB75vZAne/LXi6KHifIiKh0ZFoEemxzGxUs5UexgHrgNXAYcGJh5hZgZmd4O47gB1mFj9K+7mE\nvlXAODOLmNlw4NSg/WXgTDM7JthWHzM7rp3QngG+khDnwDS28xZwTMLj3UC/dsYDeBG4OuF9PZ/w\nviYE9z8NFATjHwlscvdfAvcC44H+wF5gZzDX+sIUxl1EbGoIZnYhMDC4PxTY5+6/A+4Mth93HLAy\nhW2LiHQZFdEi0pP1BR4wszfNrJLY1IPvuXsdcAVwh5ktJzbf94ygz98DdwdTKixhW4uBtcCbxOYT\nvwbg7luA64CHgjFeAka3E9f3gYHBCXXLic1pTnU7c4EpCY/vAZ5KPLEwiX8iNj2jErgG+FrQ/kti\nc5uXE5vysTdonwIsN7NlwFXAXe6+nNg0jlXEpoYsbmdMgFuBs83sDeAy4P2gfQzwSpDn7xLLCUFx\nXuPuG1PYtohIl7ED/9UTEZF0mNkIYE5w4lvWMLMXgIuDI+eHFDP7Z2CXu/8q7FhEpGfTkWgRkUPP\nNzmwysWhZgfwQNhBiIjoSLSIiIiISJp0JFpEREREJE0qokVERERE0qQiWkREREQkTSqiRURERETS\npCJaRERERCRNKqJFRERERNL0/wFZAoUdJaQVuAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f3363488ef0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(12, 5))\n",
    "\n",
    "# X axis is normalized to thousands\n",
    "x = np.arange(dv / 1000, (batch_num / 1000) + (dv / 1000), dv / 1000)\n",
    "\n",
    "# Plot the cost\n",
    "# plt.plot(x, training_mean[0], 'o-', linewidth=2, label='Cost')\n",
    "plt.errorbar(x, training_mean[0], yerr=training_std[0], fmt='o-', elinewidth=2, linewidth=2, label='Cost')\n",
    "plt.grid()\n",
    "plt.yticks(np.arange(0, training_mean[0][0]+5, 5))\n",
    "plt.ylabel('Cost per sequence (bits)')\n",
    "plt.xlabel('Sequence (thousands)')\n",
    "plt.title('Training Convergence', fontsize=16)\n",
    "\n",
    "ax = plt.axes([.57, .55, .25, .25], facecolor=(0.97, 0.97, 0.97))\n",
    "plt.title(\"BCELoss\")\n",
    "plt.plot(x, training_mean[1], 'r-', label='BCE Loss')\n",
    "plt.yticks(np.arange(0, training_mean[1][0]+0.2, 0.2))\n",
    "plt.grid()\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f33613455f8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "loss = history[3]['loss']\n",
    "cost = history[3]['cost']\n",
    "seq_lengths = history[3]['seq_lengths']\n",
    "\n",
    "unique_sls = set(seq_lengths)\n",
    "all_metric = list(zip(range(1, batch_num+1), seq_lengths, loss, cost))\n",
    "\n",
    "fig = plt.figure(figsize=(12, 5))\n",
    "plt.ylabel('Cost per sequence (bits)')\n",
    "plt.xlabel('Iteration (thousands)')\n",
    "plt.title('Training Convergence (Per Sequence Length)', fontsize=16)\n",
    "\n",
    "for sl in unique_sls:\n",
    "    sl_metrics = [i for i in all_metric if i[1] == sl]\n",
    "\n",
    "    x = [i[0] for i in sl_metrics]\n",
    "    y = [i[3] for i in sl_metrics]\n",
    "    \n",
    "    num_pts = len(x) // 50\n",
    "    total_pts = num_pts * 50\n",
    "    \n",
    "    x_mean = [i.mean()/1000 for i in np.split(np.array(x)[:total_pts], num_pts)]\n",
    "    y_mean = [i.mean() for i in np.split(np.array(y)[:total_pts], num_pts)]\n",
    "    \n",
    "    plt.plot(x_mean, y_mean, label='Seq-{}'.format(sl))\n",
    "\n",
    "plt.yticks(np.arange(0, 80, 5))\n",
    "plt.legend(loc=0)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# Evaluate"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import torch\n",
    "from IPython.display import Image as IPythonImage\n",
    "from PIL import Image, ImageDraw, ImageFont\n",
    "import io\n",
    "from tasks.copytask import dataloader\n",
    "from train import evaluate"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from tasks.copytask import CopyTaskModelTraining\n",
    "model = CopyTaskModelTraining()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "model.net.load_state_dict(torch.load(\"./copy/copy-task-10-batch-40000.model\"))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "seq_len = 60\n",
    "_, x, y = next(iter(dataloader(1, 1, 8, seq_len, seq_len)))\n",
    "result = evaluate(model.net, model.criterion, x, y)\n",
    "y_out = result['y_out']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def cmap(value):\n",
    "    pixval = value * 255\n",
    "    low = 64\n",
    "    high = 240\n",
    "    factor = (255 - low - (255-high)) / 255\n",
    "    return int(low + pixval * factor)\n",
    "\n",
    "def draw_sequence(y, u=12):\n",
    "    seq_len = y.size(0)\n",
    "    seq_width = y.size(2)\n",
    "    inset = u // 8\n",
    "    pad = u // 2\n",
    "    width = seq_len * u + 2 * pad\n",
    "    height = seq_width * u + 2 * pad\n",
    "    im = Image.new('L', (width, height))\n",
    "    draw = ImageDraw.ImageDraw(im)\n",
    "    draw.rectangle([0, 0, width, height], fill=250)\n",
    "    for i in range(seq_len):\n",
    "        for j in range(seq_width):\n",
    "            val = 1 - y[i, 0, j].data[0]\n",
    "            draw.rectangle([pad + i*u + inset,\n",
    "                            pad + j*u + inset,\n",
    "                            pad + (i+1)*u - inset,\n",
    "                            pad + (j+1)*u - inset], fill=cmap(val))\n",
    "\n",
    "    return im\n",
    "\n",
    "def im_to_png_bytes(im):\n",
    "    png = io.BytesIO()\n",
    "    im.save(png, 'PNG')\n",
    "    return bytes(png.getbuffer())\n",
    "\n",
    "def im_vconcat(im1, im2, pad=8):\n",
    "    assert im1.size == im2.size\n",
    "    w, h = im1.size\n",
    "\n",
    "    width = w\n",
    "    height = h * 2 + pad\n",
    "\n",
    "    im = Image.new('L', (width, height), color=255)\n",
    "    im.paste(im1, (0, 0))\n",
    "    im.paste(im2, (0, h+pad))\n",
    "    return im"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\ngg==\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def make_eval_plot(y, y_out, u=12):\n",
    "    im_y = draw_sequence(y, u)\n",
    "    im_y_out = draw_sequence(y_out, u)\n",
    "    im = im_vconcat(im_y, im_y_out, u//2)\n",
    "    \n",
    "    w, h = im.size\n",
    "    pad_w = u * 7\n",
    "    im2 = Image.new('L', (w+pad_w, h), color=255)\n",
    "    im2.paste(im, (pad_w, 0))\n",
    "    \n",
    "    # Add text\n",
    "    font = ImageFont.truetype(\"./fonts/PT_Sans-Web-Regular.ttf\", 13)\n",
    "    draw = ImageDraw.ImageDraw(im2)\n",
    "    draw.text((u,4*u), \"Targets\", font=font)\n",
    "    draw.text((u,13*u), \"Outputs\", font=font)\n",
    "    \n",
    "    return im2\n",
    "\n",
    "im = make_eval_plot(y, y_out, u=8)\n",
    "IPythonImage(im_to_png_bytes(im))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Create an animated GIF\n",
    "\n",
    "Lets see how the prediction looks like in each checkpoint that we saved. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "seq_len = 80\n",
    "_, x, y = next(iter(dataloader(1, 1, 8, seq_len, seq_len)))\n",
    "\n",
    "frames = []\n",
    "font = ImageFont.truetype(\"./fonts/PT_Sans-Web-Regular.ttf\", 13)\n",
    "for batch_num in range(500, 10500, 500):\n",
    "    model = CopyTaskModelTraining()\n",
    "    model.net.load_state_dict(torch.load(\"./copy/copy-task-10-batch-{}.model\".format(batch_num)))\n",
    "    result = evaluate(model.net, model.criterion, x, y)\n",
    "    y_out = result['y_out']\n",
    "    frame = make_eval_plot(y, y_out, u=10)\n",
    "    \n",
    "    w, h = frame.size\n",
    "    frame_seq = Image.new('L', (w, h+40), color=255)\n",
    "    frame_seq.paste(frame, (0, 40))\n",
    "    \n",
    "    draw = ImageDraw.ImageDraw(frame_seq)\n",
    "    draw.text((10, 10), \"Sequence Num: {} (Cost: {})\".format(batch_num, result['cost']), font=font)\n",
    "    \n",
    "    frames += [frame_seq]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "im = frames[0]\n",
    "im.save(\"./copy-train-80.gif\", save_all=True, append_images=frames[1:], loop=0, duration=1000)\n",
    "\n",
    "im = frames[0]\n",
    "im.save(\"./copy-train-80-fast.gif\", save_all=True, append_images=frames[1:], loop=0, duration=100)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
